package com.mycode.command15.model;

/**
 * 调用者：通过命令对象来执行请求。
 */
public class Invoker {

    private Command command;

    private CommandQueue commandQueue;

    // 构造注入
    public Invoker(Command command) {
        this.command = command;
    }

    public Invoker(CommandQueue commandQueue) {
        this.commandQueue = commandQueue;
    }

    public void setCommand(Command command) {
        this.command = command;
    }

    // 业务方法：用于调用命令类的 execute() 方法
    public void call() {
        command.execute();
    }

    // 用于多个命令
    public void callQueue() {
        commandQueue.execute();
    }
}
